Interaction bar for real-time interactions with content on a social networking system

ABSTRACT

A social networking system enables users to interact through a content item in real time by presenting an interaction bar to a user viewing a content item page associated with the content item. The social networking system presents the content item pages for content items along with a content item header. The content item header remains at a fixed position on the display of a viewing user&#39;s client device at the top of the display. If the social networking system receives an interaction with a content item, the social networking system can identify users who are viewing the content item page associated with the content item and present an interaction bar that describes the interaction in the content item header. To determine whether to present an interaction bar to a viewing user, the social networking system can calculate an affinity score of a viewing user for the interaction.

BACKGROUND

This invention relates generally to social networking systems, and inparticular to presenting interactions with content items in a socialnetworking system in real time.

Social networking systems allow users to connect and interact with eachother. In particular, many social networking systems allow users to addand interact with content items generated by other users of the socialnetworking system. For example, users can interact with content on asocial networking system by reacting to the content (e.g., “liking” thecontent item, “loving” the content item, indicating they think a contentitem is funny), adding additional content to the content item (e.g.,posting a “comment” on the content item), and sharing the content itemwith other users of the social networking system.

Interactions with content items are often presented so that users cansee how other users have interacted with the content. However,conventional social networking systems typically fail to notify users ofnew interactions with a content item in a timely manner. Thus,interactions with other users through interactions with a content itemare not typically performed in real-time. Additionally, if a user isviewing the content item through a page associated with the contentitem, the user is typically unaware of new interactions with the contentitem because the user may be viewing a portion of the content item pagethat does not display the interaction. Thus, interacting real-time withother users through a content item is difficult for a user unless theuser happens to be viewing the interaction at the time it is performed.

SUMMARY

A social networking system enables users to interact with each otherthrough a content item in real time by presenting an interaction bar toa user viewing a content item page associated with the content item. Thesocial networking system stores pages that present informationassociated with a content item, such as the content item or interactionswith the content item from other users. The social networking systempresents the content item pages along with a content item header. Thecontent item header contains information about the content item, such asidentifying information about the user who generated the content item ornumbers of interactions with the content item. The content item headercan remain at a fixed position on the display of a viewing user's clientdevice at the top of the display. Thus, the content item header isvisible to the viewing user as the viewing user is presented withdifferent portions of the content item page. For example, if the viewinguser views a new comment at the bottom of the content item page, thecontent item header is still displayed at the top of the client devicedisplay. The interaction bar may be presented near to when theinteraction occurs. For example, the interaction bar may be presented asthe interaction occurs, immediately after the interaction occurs, orsome time period after the interaction occurs.

If the social networking system receives an interaction with a contentitem, the social networking system can identify users who are currentlyviewing the content item page associated with the content item andpresent an interaction bar to the users that describes the interaction.The interaction bar is presented to viewing users in the content itemheader and is similarly available to be viewed by the user no matterwhich portion of the content item page the viewing users is currentlyviewing. The interaction bar may identify the user who performed theinteraction or the type of the interaction. To determine whether topresent an interaction bar to a viewing user, the social networkingsystem can calculate an affinity score of a viewing user for theinteraction. If the affinity score exceeds a threshold, the socialnetworking system presents an interaction bar describing the interactionto the viewing user. The affinity may be determined based on the viewinguser, the type of the interaction, and the content item.

By presenting interaction bars to a viewing user describing interactionswith a content item, the user is alerted to an interaction when theinteraction takes place. This brings interactions to the user'sattention that they may otherwise miss, and allows interacting with acontent item to be a method for real-time communication between users.Additionally, by presenting the content item header at a fixed positionon the client device display, the interaction bar can be presented to aviewing user no matter which portion of the content item page theviewing user is currently viewing, and therefore can bring newinteractions with the content item to the attention of the viewing usermore effectively.

BRIEF DESCRIPTION OF FIGURES

FIG. 1 illustrates an example system environment and system architecturefor a social networking system, in accordance with some embodiments.

FIG. 2 illustrates an example user interface for a content item page, inaccordance with some embodiments.

FIG. 3 illustrates an example user interface for a content item pagethat includes a content item header with an interaction bar, inaccordance with some embodiments.

FIG. 4 illustrates an example user interface for a content item pagethat includes a new interaction with the content item, in accordancewith some embodiments.

FIG. 5 illustrates an example user interface for a content item pagewith an interaction bar that is presented while the user is not viewingthe top of the content item page, in accordance with some embodiments.

FIG. 6 illustrates an example user interface for a content item pagewith a reduced content item header, in accordance with some embodiments.

FIGS. 7A-7D illustrate alternative content item headers for a contentitem page, in accordance with some embodiments.

FIG. 8 is a flowchart for a method of presenting an interaction bar to auser, in accordance with some embodiments.

DETAILED DESCRIPTION Example System Environment and Architecture

FIG. 1 illustrates an example system environment for a social networkingsystem 110, in accordance with some embodiments. The illustrated systemincludes one or more client devices 100, a network 105, one or morethird-party systems 112, and the social networking system 110 Inalternate embodiments, the functionality of each component may bedistributed differently from the examples described herein, and thesystem environment may include more, fewer, or different components thanillustrated in FIG. 1. Additionally, each component may perform theirrespective functionalities in response to a request from a human, orautomatically without human intervention. Furthermore, the embodimentsdescribed herein can be adapted to online systems that are not socialnetworking systems.

The client devices 100 are one or more computing devices capable ofreceiving user input as well as transmitting and/or receiving data viathe network 105. In one embodiment, a client device 100 is aconventional computer system, such as a desktop or laptop computer.Alternatively, a client device 100 may be a device having computerfunctionality, such as a personal digital assistant (PDA), a mobiletelephone, a smartphone or another suitable device. A client device 100is configured to communicate via the network 105. In one embodiment, aclient device 100 executes an application allowing a user of the clientdevice 100 to interact with the social networking system 110. Forexample, a client device 110 executes a browser application to enableinteraction between the client device 100 and the social networkingsystem 110 via the network 105. In another embodiment, a client device100 interacts with the social networking system 110 through anapplication programming interface (API) running on a native operatingsystem of the client device 100, such as IOS® or ANDROID™.

The client devices 100 are configured to communicate via the network105, which may comprise any combination of local area and wide areanetworks employing wired or wireless communication links. In oneembodiment, the network 105 uses standard communications technologiesand protocols. For example, the network 105 includes communication linksusing technologies such as Ethernet, 802.11, worldwide interoperabilityfor microwave access (WiMAX), 3G, 4G, code division multiple access(CDMA), digital subscriber line (DSL), etc. Examples of networkingprotocols used for communicating via the network 105 includemultiprotocol label switching (MPLS), transmission controlprotocol/Internet protocol (TCP/IP), hypertext transport protocol(HTTP), simple mail transfer protocol (SMTP), and file transfer protocol(FTP). Data exchanged over the network 105 may be represented using anysuitable format, such as hypertext markup language (HTML) or extensiblemarkup language (XML). In some embodiments, all or some of thecommunication links of the network 105 may be encrypted using anysuitable technique or techniques.

One or more third party systems 112 may be coupled to the network 105for communicating with the social networking system 110, which isfurther described below in conjunction with FIG. 1. In one embodiment, athird party system 112 is an application provider communicatinginformation describing applications for execution by a client device 100or communicating data to client devices 100 for use by an applicationexecuting on the client device. In other embodiments, a third partysystem 112 provides content or other information for presentation via aclient device 100. A third party website 112 may also communicateinformation to the social networking system 110, such as advertisements,content, or information about an application provided by the third partywebsite 112.

The social networking system 110 shown in FIG. 1 includes a user profilestore 115, a content store 120, an action logger 125, an action store130, an edge store 135, and a user interface server 140. Alternateembodiments may include more, fewer, or different components from thoseillustrated in FIG. 1, and the functionality of the components may bedivided up differently from the description below. Additionally,conventional components such as network interfaces, security functions,load balancers, failover servers, management and network operationsconsoles, and the like are not shown so as to not obscure the details ofthe system architecture.

Each user of the social networking system 110 is associated with a userprofile, which is stored in the user profile store 115. A user profileincludes declarative information about the user that was explicitlyshared by the user and may also include profile information inferred bythe social networking system 110. In one embodiment, a user profileincludes multiple data fields, each describing one or more attributes ofthe corresponding user of the social networking system 110. Examples ofinformation stored in a user profile include biographic, demographic,and other types of descriptive information, such as work experience,educational history, gender, hobbies or preferences, location and thelike. A user profile may also store other information provided by theuser, for example, images or videos. In certain embodiments, images ofusers may be tagged with identification information of users of thesocial networking system 110 displayed in an image. A user profile inthe user profile store 115 may also maintain references to actions bythe corresponding user performed on content items in the content store120 and stored in the action store 130.

The content store 120 stores objects that each represent various typesof content. Examples of content types represented by an object include apage post, a status update, a photograph, a video, a link, a sharedcontent item, a gaming application achievement, a check-in event at alocal business, a brand page, or any other type of content. Socialnetworking system users may create objects stored by the content store120, such as status updates, photos tagged by users to be associatedwith other objects in the social networking system, events, groups orapplications. In some embodiments, objects are received from third-partyapplications or third-party applications separate from the socialnetworking system 110. In one embodiment, objects in the content store120 represent single pieces of content, or content “items.” Hence, usersof the social networking system 110 are encouraged to communicate witheach other by posting content items of various types of media throughvarious communication channels. This increases the amount of interactionof users with each other and increases the frequency with which usersinteract within the social networking system 110.

The action logger 125 receives communications about user actionsinternal to and/or external to the social networking system 110,populating the action store 130 with information about user actions.Examples of actions include adding a connection to another user, sendinga message to another user, uploading an image, reading a message fromanother user, viewing content associated with another user, attending anevent posted by another user, among others. In addition, a number ofactions may involve an object and one or more particular users, so theseactions are associated with those users as well and stored in the actionstore 130.

The action store 130 may be used by the social networking system 110 totrack user actions on the social networking system 110, as well asactions on third party systems 112 that communicate information to thesocial networking system 110. Users may interact with various objects onthe social networking system 110, and information describing theseinteractions is stored in the action log 130. Examples of interactionswith objects include: commenting on posts, sharing links, andchecking-in to physical locations via a mobile device, accessing contentitems, and any other interactions. Additional examples of interactionswith objects on the social networking system 110 that are included inthe action store 130 include commenting on a photo album, communicatingwith a user, establishing a connection with an object, joining an eventto a calendar, joining a group, creating an event, authorizing anapplication, using an application, reacting to an object (“liking” or“loving” the object, indicating that the object is funny or sad) andengaging in a transaction. Additionally, the action store 130 may recorda user's interactions with advertisements on the social networkingsystem 110 as well as with other applications operating on the socialnetworking system 110. In some embodiments, data from the action store130 is used to infer interests or preferences of a user, augmenting theinterests included in the user's user profile and allowing a morecomplete understanding of user preferences.

The action store 130 may also store user actions taken on a third partysystem 112, such as an external website, and communicated to the socialnetworking system 110. For example, an e-commerce website that primarilysells sporting equipment at bargain prices may recognize a user of asocial networking system 110 through a social plug-in enabling thee-commerce website to identify the user of the social networking system110. Because users of the social networking system 110 are uniquelyidentifiable, e-commerce websites, such as this sporting equipmentretailer, may communicate information about a user's actions outside ofthe social networking system 110 to the social networking system 110 forassociation with the user. Hence, the action store 130 may recordinformation about actions users perform on a third party system 112,including webpage viewing histories, advertisements that were engaged,purchases made, and other patterns from shopping and buying.

In one embodiment, an edge store 135 stores information describingconnections between users and other objects on the social networkingsystem 110 as edges. Some edges may be defined by users, allowing usersto specify their relationships with other users. For example, users maygenerate edges with other users that parallel the users' real-liferelationships, such as friends, co-workers, partners, and so forth.Other edges are generated when users interact with objects in the socialnetworking system 110, such as expressing interest in a page on thesocial networking system, sharing a link with other users of the socialnetworking system, and commenting on posts made by other users of thesocial networking system.

In one embodiment, an edge may include various features eachrepresenting characteristics of interactions between users, interactionsbetween users and object, or interactions between objects. For example,features included in an edge describe rate of interaction between twousers, how recently two users have interacted with each other, the rateor amount of information retrieved by one user about an object, or thenumber and types of comments posted by a user about an object. Thefeatures may also represent information describing a particular objector user. For example, a feature may represent the level of interest thata user has in a particular topic, the rate at which the user logs intothe social networking system 110, or information describing demographicinformation about a user. Each feature may be associated with a sourceobject or user, a target object or user, and a feature value. A featuremay be specified as an expression based on values describing the sourceobject or user, the target object or user, or interactions between thesource object or user and target object or user; hence, an edge may berepresented as one or more feature expressions.

The edge store 135 also stores information about edges, such as affinityscores for objects, interests, and other users. Affinity scores, or“affinities,” may be computed by the social networking system 110 overtime to approximate a user's affinity for an object, interest, and otherusers in the social networking system 110 based on the actions performedby the user. A user's affinity may be computed by the social networkingsystem 110 over time to approximate a user's affinity for an object,interest, and other users in the social networking system 110 based onthe actions performed by the user. Computation of affinity is furtherdescribed in U.S. patent application Ser. No. 12/978,265, filed on Dec.23, 2010, U.S. patent application Ser. No. 13/690,254, filed on Nov. 30,2012, U.S. patent application Ser. No. 13/689,969, filed on Nov. 30,2012, and U.S. patent application Ser. No. 13/690,088, filed on Nov. 30,2012, each of which is hereby incorporated by reference in its entirety.Multiple interactions between a user and a specific object may be storedas a single edge in the edge store 135, in one embodiment.Alternatively, each interaction between a user and a specific object isstored as a separate edge. In some embodiments, connections betweenusers may be stored in the user profile store 115, or the user profilestore 115 may access the edge store 135 to determine connections betweenusers.

The user interface server 140 links the social networking system 110 viathe network 105 to the one or more client devices 100, as well as to theone or more third party systems 112. The user interface server 140serves web pages, as well as other web-related content, such as JAVA®,FLASH®, XML and so forth. The user interface server 140 may receive androute messages between the social networking system 110 and the clientdevice 100, for example, instant messages, queued messages (e.g.,email), text messages, short message service (SMS) messages, or messagessent using any other suitable messaging technique. A user may send arequest to the user interface server 140 to upload information (e.g.,images or videos) that are stored in the content store 120.Additionally, the user interface server 140 may provide applicationprogramming interface (API) functionality to send data directly tonative client device operating systems, such as IOS®, ANDROID™, WEBOS®or RIM®.

The user interface server 140 generates user interfaces, such as webpages, with content from the social networking system 110. The userinterfaces are displayed to the user through a client device 100 andnetwork 105. The user interfaces provided by the user interface server140 allows a user to generate content items and interact with contentitems stored by the content store 120. For example, a user interface mayprovide a method for a user provide text, pictures, videos, links, andadvertisements to be used to generate content items. The user interfaceserver 140 configures a user interface based on the client device 100used to present it. For example, a user interface for a smartphone witha touchscreen may be configured differently from a user interface for aweb browser on a computer.

The user interface server 140 receives information from the actionlogger 135 about a user interacting with a content item. Upon receivinginformation about an interaction with a content item, the user interfaceserver 140 identifies other users viewing the content item and presentsan interaction bar describing the interaction to the users viewing thecontent item within a content item header on a content item page. A userviewing a content item page for a content item is termed a “viewinguser.” In some embodiments, the interaction bar identifies the user whoperformed the interaction and the type of the interaction. Theinteraction bar may be shown to a viewing user based on a measure ofaffinity of the viewing user for the interaction, which may bedetermined based on the affinity of the viewing user to various featuresof the interaction. The measure of affinity for an interaction may bebased on the viewing user's affinity for the user who performed theaction, the user who generated or posted the content item, the contentitem, and the type of interaction itself. Content item headers andinteraction bars describing interactions with a content item arediscussed further with FIG. 2-7.

Example Content Item Page User Interfaces

FIG. 2 illustrates an example user interface for a content item page, inaccordance with some embodiments. The content item page presents thecontent item 200 associated with the content item page, as well asinteractions 210 with the content item (e.g. reactions and comments).The content item page displays a content item header 220 that displaysinformation about the content item. For example, the content item headeridentifies the user 230 who generated the content item, as well asnumbers 240 representing how many comments and how many reactions usershave posted to the content item. The content item header maintains astatic position on a display of a client device such that, if the userscrolls further down the content item page, the content item headerremains visible. Thus, the viewing user is able to view informationpresented in the content item header throughout the content item page.

The content item page also displays an interface 250 that allows a userto interact with the content item, e.g., by posting a comment or“liking” the content item. Each comment posted on the content itemidentifies the user 260 who posted the comment. Users can also interactwith the content item by interacting with comments on the content item,and the content item page displays those interactions 270 with thecomments, e.g. the number of “likes” a comment has received. In someembodiments, users can interact with comments in other ways, for exampleby replying to comments.

FIG. 3 illustrates an example user interface for a content item pagethat includes a content item header 230 with an interaction bar 300, inaccordance with some embodiments. When the social networking systemreceives a new interaction with a content item while a viewing user isviewing a content item page, the content item header displays aninteraction bar 300 describing the interaction. The interaction bar 300can identify the user who interacted with the content item and what theinteraction was. For example, FIG. 3 illustrates an interaction bar forUser M's new comment on the content item, which includes User M'sprofile picture and an icon indicating that the interaction is acomment. In some embodiments, an interaction bar could representmultiple types of interactions from the same user. For example, if auser both commented on and liked a content item, a single interactionbar with the user's profile picture may be shown, and the interactionbar may have icons for both a like and a comment. In some embodiments,the interaction bar provides a preview of the interaction when itappears. For example, the interaction bar may display the text of a newcomment when it appears. The interaction bar 300 may be presented nearto when the interaction occurs. For example, the interaction bar may bepresented as the interaction occurs, immediately after the interactionoccurs, or some time period after the interaction occurs.

In some embodiments, an interaction bar may be displayed describing eachinteraction that takes place with the content item while the viewinguser is viewing the content item page. In some embodiments, the socialnetworking system displays an interaction bar to a viewing user based onan affinity score for the interaction. The affinity score can bedetermined based on the content item, the viewing user, the user whogenerated the content item, the user who performed the interaction, thetype of the interaction, or content associated with the interaction. Insome embodiments, the affinity score is based on whether the viewinguser has previously interacted with the content item. A threshold forthe affinity score may be used to determine whether to display aninteraction bar. The threshold may be based on the number of previousinteractions or the rate of interaction with the content item. Forexample, if there have been a large number of interactions within ashort period of time, an interaction bar may only be shown to a viewinguser if the interaction is performed by a friend of the viewing user.

In some embodiments, an interaction bar is only displayed for a periodof time, after which the interaction bar is no longer displayed. Theperiod of time for displaying an interaction bar may be based on theaffinity score of the interaction for the viewing user or the rate atwhich interactions are being performed on the content item. If aninteraction bar is displayed and another interaction occurs before thefirst interaction bar disappears, a second interaction bar describingthe new interaction may replace the first interaction bar, or the secondinteraction bar may describe both interactions. In other embodiments, aninteraction bar is displayed until the viewing user views theinteraction. For example, if the interaction is a new comment posted onthe content item, the content item page may display the interactionuntil the user scrolls to the new comment. In some embodiments, theviewing user may select the interaction bar 300 to be presented with thenew interaction.

FIG. 4 illustrates an example user interface for a content item pagethat includes a new interaction 400 with the content item, in accordancewith some embodiments. The new interaction 400 illustrated in FIG. 4 isthe new interaction described by the interaction bar 300 in FIG. 3. Thecontent item page illustrated in FIG. 4 also no longer displays theinteraction bar associated with the interaction 400. As described above,the interaction bar may no longer be displayed in the content itemheader if a time period for presenting the interaction bar passes, orbecause the user has viewed the interaction on the content item page.Additionally, as described above, though the viewing user is no longerviewing the top of the content item page, the content item header 230 isstill displayed to the viewing user.

The content item header displays the interaction bar no matter whichportion of the content item page the viewing user is viewing. Forexample, FIG. 5 illustrates an example user interface for a content itempage with an interaction bar 500 that is presented while the user is notviewing the top of the content item page, in accordance with someembodiments. The social networking system may determine whether todisplay an interaction bar based on the portion of the content item pagebeing presented to the viewing user. For example, if the viewing user isnear the bottom of the content item page, the social networking systemmay be more likely to present an interaction bar describing a newcomment to the viewing user so that the viewing user is inclined to viewthe new comment. In some embodiments, the social networking systempresents the interaction bar if the viewing user is not viewing aparticular part of the content item page, such as the top of the contentitem page, the content item, or a portion that describes interactionwith the content item page.

In some embodiments, the social networking system adjusts the contentitem header based on the portion of the content item page beingdisplayed to the viewing user. For example, if the viewing user isviewing the top of the content item page, the social networking systemmay present an expanded content item header, such as the ones presentedin FIGS. 2-5. However, the content item header may be reduced in sizewhen the viewing user is presented with a portion of the content itempage that does not include the top of the content item page. FIG. 6illustrates an example user interface for a content item page with areduced content item header 600, in accordance with some embodiments.The reduced content item header may identify the user who generated thecontent item (e.g., by presenting the profile picture of the user) ormay display other information about interactions with the content item,such as the number of reactions or comments associated with the contentitem. In some embodiments, the reduced content item header rotates theinformation presented to the viewing user. For example, the reducedcontent item header may alternate between displaying an interaction barand an identifier for the user who generated the content item. Byadjusting or reducing the size of the content item header, interactionscan still be brought to the viewing user's attention while making moreof the content item page more visible to the viewing user.

FIGS. 7A-7D illustrate alternative content item headers for a contentitem page, in accordance with some embodiments. FIG. 7A illustrates acontent item header that includes an interaction bar describing a userwho has reacted to the content item, in accordance with someembodiments. FIG. 7B illustrates a content item header that includes aninteraction bar describing a user who has interacted with content postedon a content item, in accordance with some embodiments. In particular,the content item header describes a user who reacted to a comment postedon the content item.

FIG. 7C illustrates a content item header that includes an interactionbar describing multiple interactions with the content item, inaccordance with some embodiments. In these embodiments, if a contentitem receives many interactions of the same type within a given timeperiod, the social networking system aggregates the interactions intoone interaction bar. FIG. 7C illustrates an interaction bar thataggregates reaction interactions from two users. A threshold number ofinteractions may be needed to display an aggregated interaction bar. Forexample, the social network may require five interactions to occur inorder to display an aggregated interaction bar; otherwise, individualinteraction bars may be shown. The aggregated interaction bar shows acount of the number of interactions associated with the interaction bar.In some embodiments, the displayed count does not exceed a certainvalue. For example, an aggregated interaction bar may simply indicatethat at least some number (e.g., “99+”) of users have interacted withthe content item.

In some embodiments, the time period used to determine whether toaggregate interactions is the same as one deciding how long to displaythe interaction bar. In other words, if an interaction occurs before theinteraction bar disappears, then an aggregated interaction bar isdisplayed. In some embodiments, if an aggregated interaction bardisappears and a new interaction occurs, an aggregated interaction baris displayed with the count including the interactions described by theaggregated interaction bar that disappeared. In other embodiments, if anaggregated interaction bar disappears and a new interaction occurs, aninteraction bar describing only the new interaction is displayed. Insome embodiments, the viewing user can select an aggregated interactionbar to view all interactions associated with the interaction bar or todisplay the most recent interaction. The aggregated interaction bar mayalso show information about some of the users whose interactions areassociated with the interaction bar. For example, the aggregatedinteraction bar may show the profile picture of users whose interactionsare associated with the aggregated interaction bar.

FIG. 7D illustrates a content item header that includes an interactionbar describing another user's presence on the content item page, inaccordance with some embodiments. A user is present on a content itempage if the user is currently viewing the content item page. In someembodiments, the viewing user can select a presence interaction barshowing a user's presence on a content item to view a page, such as aprofile or feed, associated with the selected user to the viewing user.An interaction bar showing a user's presence on a content item may beshown to a viewing user based on a measure of affinity of the viewinguser for the user.

Presenting an Interaction Bar to a User

FIG. 8 is a flowchart for a method of presenting an interaction bar to auser, in accordance with some embodiments. Alternate embodiments mayinclude more, fewer, or different steps, or steps performed in adifferent order, than what is illustrated in FIG. 8 and described below.Additionally, the steps may be performed in response to a human commandor automatically without human intervention.

A social networking system stores 800 a content item page associatedwith a content item of the social networking system. The content itempage presents the content item to the users viewing the content itempage, and includes a content item header, which contains informationabout the content item, such as the user who generated the content itemor a number of interactions that have occurred with the content item.The content item header is presented at a static position with respectto a display of the client device on which it is presented, such that auser can view different portions of the content item page and still viewinformation presented in the content item header.

The social networking system receives 810 an interaction with thecontent item from a user of the social networking system. Theinteraction can include a reaction to the content item or a commentposted by the user on the content item. Upon receiving the interactions,the social networking system identifies 820 users that are currentlyviewing the content item page and generates 830 affinity scores for theidentified users for the interaction. The social networking systemselects 840 users to present the interaction based on the generatedaffinity scores and presents 850 an interaction bar in the content itemheader describing the interaction. The content item header with theinteraction bar may be presented to the users no matter where on thecontent item page the users are viewing. For example, the content itemheader may be presented at the same position on a user's client devicewhen the user changes the portion of the content item page that they areviewing. The interaction bar may be presented near to when theinteraction occurs. For example, the interaction bar may be presented tothe user as the interaction occurs, immediately after the interactionoccurs, or some period of time after the interaction occurs.

SUMMARY

The foregoing description of the embodiments has been presented for thepurpose of illustration; it is not intended to be exhaustive or to limitthe patent rights to the precise forms disclosed. Persons skilled in therelevant art can appreciate that many modifications and variations arepossible in light of the above disclosure.

Some portions of this description describe the embodiments in terms ofalgorithms and symbolic representations of operations on information.These algorithmic descriptions and representations are commonly used bythose skilled in the data processing arts to convey the substance oftheir work effectively to others skilled in the art. These operations,while described functionally, computationally, or logically, areunderstood to be implemented by computer programs or equivalentelectrical circuits, microcode, or the like. Furthermore, it has alsoproven convenient at times, to refer to these arrangements of operationsas modules, without loss of generality. The described operations andtheir associated modules may be embodied in software, firmware,hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments may also relate to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, and/or it may comprise a general-purpose computingdevice selectively activated or reconfigured by a computer programstored in the computer. Such a computer program may be stored in anon-transitory, tangible computer readable storage medium, or any typeof media suitable for storing electronic instructions, which may becoupled to a computer system bus. Furthermore, any computing systemsreferred to in the specification may include a single processor or maybe architectures employing multiple processor designs for increasedcomputing capability.

Embodiments may also relate to a product that is produced by a computingprocess described herein. Such a product may comprise informationresulting from a computing process, where the information is stored on anon-transitory, tangible computer readable storage medium and mayinclude any embodiment of a computer program product or other datacombination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the patent rights be limitednot by this detailed description, but rather by any claims that issue onan application based hereon. Accordingly, the disclosure of theembodiments is intended to be illustrative, but not limiting, of thescope of the patent rights, which is set forth in the following claims.

What is claimed is:
 1. A method comprising: storing a content item pageassociated with a content item, and the content item page including acontent item header containing information about the content item;receiving an interaction with the content item from a first user of thesocial networking system; and responsive to receiving the interaction:identifying a plurality of users that are currently viewing the contentitem page, generating an affinity score for each user of the pluralityof users for the interaction, selecting a second user of the pluralityof users that is currently viewing the content item page based on thegenerated affinity scores, the second user being different from thefirst user and viewing a portion of the content item page that does notinclude the top of the content item page, and presenting, to the seconduser, an interaction bar in the content item header of the content itempage, the interaction bar identifying the second user and describing theinteraction near to when the interaction occurs.
 2. The method of claim1, further comprising: determining whether the second user is viewing aportion of the content item page that includes the top of the contentitem page; and responsive to determining that the second user is viewinga portion of the content item page that does not include the top of thecontent item page, reducing a size of the content item header.
 3. Themethod of claim 1, wherein the interaction with the content itemcomprises at least one of: the first user liking the content item; thefirst user posting a comment on the content item; the first userinteracting with a comment posted on the content item; and the firstuser sharing the content item with other users of the social networkingsystem.
 4. The method of claim 1, wherein the interaction bar comprisesinformation identifying the first user.
 5. The method of claim 4,wherein the information identifying the first user comprises a profilepicture for the first user.
 6. The method of claim 1, wherein theinteraction includes an interaction type.
 7. The method of claim 6,further comprising: receiving, from a set of users, a set ofinteractions with the content item, the set of users not containing thesecond user, and each interaction in the set of interactions having aninteraction type that is the same as the interaction type of theinteraction received from the first user; generating an aggregatedinteraction bar comprising information identifying the interaction typeof the interactions in the set of interactions and a count of a numberof interactions in the set of interactions; and presenting theaggregated interaction bar to the second user in the content itemheader.
 8. The method of claim 7, wherein the aggregated interaction barcomprises information identifying a subset of users of the set of users.9. The method of claim 1, wherein the second user is selected based on athreshold for the measure of affinity of the second user for theinteraction.
 10. The method of claim 1, further comprising: identifyinga third user of the plurality of users that is currently viewing thecontent item page in the social networking system; and presenting aninteraction bar to the second user that indicates that the third user iscurrently viewing the content item page.
 11. The method of claim 10,wherein the third user is identified based on a measure of affinity ofthe second user for the third user.
 12. The method of claim 1, whereinthe second user is selected based on a rate at which users areinteracting with the content item.
 13. A method comprising: storing acontent item page associated with a content item, and the content itempage including a content item header containing information about thecontent item; receiving an interaction with the content item from afirst user of the social networking system; and responsive to receivingthe interaction: identifying a plurality of users that are currentlyviewing the content item page, generating an affinity score for eachuser of the plurality of users for the interaction, selecting a seconduser of the plurality of users that is currently viewing the contentitem page based on the generated affinity scores, and the second userbeing different from the first user, and presenting, to the second user,an interaction bar in the content item header of the content item page,the interaction bar identifying the second user and describing theinteraction near to when the interaction occurs.
 14. The method of claim13, further comprising: identifying a portion of the content item pagethat the second user is currently viewing; and adjusting the contentitem header based on the identified portion that the second user iscurrently viewing.
 15. The method of claim 14, wherein: identifying theportion of the content item page comprises determining whether theportion that the second user is currently viewing includes a top of thecontent item page; and adjusting the content item header based on theidentified portion comprises, responsive to the identified portion notincluding the top of the content item page, reducing a size of thecontent item header.
 16. The method of claim 14, wherein the interactionbar comprises information identifying the first user.
 17. The method ofclaim 16, wherein the information identifying the first user comprises aprofile picture for the first user.
 18. The method of claim 14, whereinthe second user is selected based on a threshold for the measure ofaffinity of the second user for the interaction.
 19. The method of claim14, further comprising: identifying a third user of the plurality ofusers that is currently viewing the content item page in the socialnetworking system; and presenting an interaction bar to the second userthat indicates that the third user is currently viewing the content itempage.
 20. The method of claim 14, wherein the second user is selectedbased on a rate at which users are interacting with the content item.